Skip to content

scheduler: account for affinity value of zero in score normalization #25800

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
May 19, 2025

Conversation

tgross
Copy link
Member

@tgross tgross commented May 1, 2025

If there are no affinities on a job, we don't want to count an affinity score of zero in the number of scores we divide the normalized score by. This is how we handle other scoring components like node reschedule penalties on nodes that weren't running the previous allocation.

But we also exclude counting the affinity in the case where we have affinity but the value is zero. In pathological cases, this can result in a node with a no affinity being picked over a node with low affinity, because the denominator is 1 larger. Include zero-value affinities in the count of scores if the job has affinities but the value just happens to be zero.

Fixes: #25621

schmichael
schmichael previously approved these changes May 19, 2025
Copy link
Member

@schmichael schmichael left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work to you and the issue participants! Nasty edge case that's hard to notice.

@tgross
Copy link
Member Author

tgross commented May 19, 2025

Bah, forgot a changelog.... lemme add that.

If there are no affinities on a job, we don't want to count an affinity score of
zero in the number of scores we divide the normalized score by. This is how we
handle other scoring components like node reschedule penalties on nodes that
weren't running the previous allocation.

But we also exclude counting the affinity in the case where we have affinity but
the value is zero. In pathological cases, this can result in a node with a low
affinity being picked over a node with no affinity, because the denominator is 1
larger. Include zero-value affinities in the count of scores if the job has
affinities but the value just happens to be zero.

Fixes: #25621
@tgross tgross added backport/ent/1.8.x+ent Changes are backported to 1.8.x+ent backport/ent/1.9.x+ent Changes are backported to 1.9.x+ent backport/1.10.x backport to 1.10.x release line labels May 19, 2025
@tgross tgross merged commit 456d95a into main May 19, 2025
47 checks passed
@tgross tgross deleted the gh25621-zero-affinity branch May 19, 2025 18:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport/ent/1.8.x+ent Changes are backported to 1.8.x+ent backport/ent/1.9.x+ent Changes are backported to 1.9.x+ent backport/1.10.x backport to 1.10.x release line theme/scheduling type/bug
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Final score is not the average of all scores
2 participants